class Event {
  on(evt, fn) {
    if(typeof(this.#listeners[evt]) === 'undefined') {
            this.#listeners[evt] = [];           
    }
        this.#listeners[evt].push(fn);     
  }
  emit(evt, arg) {
    if(typeof(this.#listeners[evt]) === 'undefined') {
            throw(new Error(`${evt} is not defined!`));             
    }
    this.#listeners[evt].forEach((fn) => {
            fn.call(this, arg);           
    });
  }
    #listeners = {};
}

module.exports = Event;
